--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
README.md 18bcce4f4be30bf04cc7ebfa2bef65a8d83a3f56 (18bcce4f) Text, 6.94 KB
Reticulum MeshChatX
A Reticulum MeshChat fork from the future.
This project is seperate from the original Reticulum MeshChat project, and is not affiliated with the original project.
│ [!WARNING] Backup your reticulum-meshchat folder before using, even though MeshChatX will attempt
│ to auto-migrate whatever it can from the old database without breaking things. Its best to keep
│ backups.
Major Features
• Full LXST support w/ custom voicemail, phonebook, contacts, contact sharing and ringtone support.
• Multi-identity support.
• Authentication
• Map (OpenLayers w/ MBTiles upload and exporter for offline maps)
• Security improvements (automatic HTTPS, CORS, and much more)
• Modern Custom UI/UX
• More Tools (RNStatus, RNProbe, RNCP and Translator)
• Built-in page archiving and automatic crawler.
• Block LXMF users, Telephony and NomadNet Nodes
• Toast system for notifications
• i18n support (En, De, Ru)
• Raw SQLite database backend (replaced Peewee ORM)
• LXMF Telemetry (WIP)
TODO
• [ ] Tests and proper CI/CD pipeline.
• [ ] RNS hot reload fix
• [ ] Offline Reticulum documentation tool
• [ ] Spam filter (based on keywords)
• [ ] TAK tool/integration
• [ ] RNS Tunnel - tunnel your regular services over RNS to another MeshchatX user.
• [ ] RNS Filesync - P2P file sync
• [ ] RNS Page Node
• [ ] Micron Editor
Usage
Building
This project uses Task for build automation. Install Task first, then:
T282828
task install T8b949e# installs Python deps via Poetry and Node deps via pnpm
task build
You can run T383838task run or T383838task develop (a thin alias) to start the backend + frontend loop locally through T383838poetry run meshchat.
Available Tasks
┌────────────────────────────┬─────────────────────────────────────────────────────────────────────┐
│ Task │ Description │
├────────────────────────────┼─────────────────────────────────────────────────────────────────────┤
│ T383838task install │ Install all dependencies (syncs version, installs node modules and… │
│ T383838task node_modules │ Install Node.js dependencies only │
│ T383838task python │ Install Python dependencies using Poetry only │
│ T383838task sync-version │ Sync version numbers across project files │
│ T383838task run │ Run the application │
│ T383838task develop │ Run the application in development mode (alias for T383838run) │
│ T383838task build │ Build the application (frontend and backend) │
│ T383838task build-frontend │ Build only the frontend │
│ T383838task clean │ Clean build artifacts and dependencies │
│ T383838task wheel │ Build Python wheel package (outputs to T383838python-dist/) │
│ T383838task build-appimage │ Build Linux AppImage │
│ T383838task build-exe │ Build Windows portable executable │
│ T383838task dist │ Build distribution (defaults to AppImage) │
│ T383838task electron-legacy │ Install legacy Electron version │
│ T383838task build-appimage-legacy │ Build Linux AppImage with legacy Electron version │
│ T383838task build-exe-legacy │ Build Windows portable executable with legacy Electron version │
│ T383838task build-docker │ Build Docker image using buildx │
│ T383838task run-docker │ Run Docker container using docker-compose │
└────────────────────────────┴─────────────────────────────────────────────────────────────────────┘
All tasks support environment variable overrides. For example:
• T383838PYTHON=python3.12 task install
• T383838DOCKER_PLATFORMS=linux/amd64,linux/arm64 task build-docker
Python Packaging
The backend uses Poetry with T383838pyproject.toml for dependency management and packaging. Before building, run T383838python3 scripts/sync_version.py (or T383838task sync-version) to ensure the generated T383838src/version.py reflects the version from T383838package.json that the Electron artifacts use. This keeps the CLI release metadata, wheel packages, and other bundles aligned.
Build Artifact Locations
Both T383838poetry build and T383838python -m build generate wheels inside the default T383838dist/ directory. The T383838task wheel shortcut wraps T383838poetry build -f wheel and then runs T383838python scripts/move_wheels.py to relocate the generated T383838.whl files into T383838python-dist/ (the layout expected by T383838scripts/test_wheel.sh and the release automation). Use T383838task wheel if you need the artifacts in T383838python-dist/; T383838poetry build or T383838python -m build alone will leave them in T383838dist/.
Building with Poetry
T282828
T8b949e# Install dependencies
poetry install
T8b949e# Build the package (wheels land in dist/)
poetry build
T8b949e# Install locally for testing (consumes dist/)
pip install dist/*.whl
Building with pip (alternative)
If you prefer pip, you can build/install directly:
T282828
T8b949e# Build the wheel
pip install build
python -m build
T8b949e# Install locally
pip install .
Building in Docker
T282828
task build-docker
T383838build-docker creates T383838reticulum-meshchatx:local (or T383838$DOCKER_IMAGE if you override it) via T383838docker buildx. Set T383838DOCKER_PLATFORMS to T383838linux/amd64,linux/arm64 when you need multi-arch images, and adjust T383838DOCKER_BUILD_FLAGS/T383838DOCKER_BUILD_ARGS to control T383838--load/T383838--push.
Running with Docker Compose
T282828
task run-docker
T383838run-docker feeds the locally-built image into T383838docker compose -f docker-compose.yml up --remove-orphans --pull never reticulum-meshchatx. The compose file uses the T383838MESHCHAT_IMAGE env var so you can override the target image without editing the YAML (the default still points at T383838ghcr.io/sudo-ivan/reticulum-meshchatx:latest). Use T383838docker compose down or T383838Ctrl+C to stop the container.
The Electron build artifacts will still live under T383838dist/ for releases.
Standalone Executables (cx_Freeze)
The T383838cx_setup.py script uses cx_Freeze for creating standalone executables (AppImage for Linux, NSIS for Windows). This is separate from the Poetry/pip packaging workflow.
Internationalization (i18n)
Multi-language support is in progress. We use T383838vue-i18n for the frontend.
Translation files are located in T383838meshchatx/src/frontend/locales/.
Currently supported languages:
• English (Primary)
• Russian
• German
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────